#ifndef __MY__LOG__
#define __MY__LOG__
#include <iostream>
#include <string>
#include <ctime>

#define INFO 1
#define WARNING 2
#define ERROR 3
#define FATAL 4

// #level的含义是，我们传入的是LOG(INFO, "你好")，如果不加#编译器会把INFO解释成整数1，传参的时候会报错
// 加了#的意思是，把IOFO转化成字符串的形式打印出来，这样就能契合，参数
#define LOG(level, message) Log(#level, message, __FILE__, __LINE__)

// 日志级别+时间戳+日志信息+错误文件名称+行数
/*
INFO     1
WARNING  2
ERROR    3
FATAL    4
*/
void Log(std::string level, std::string message, std::string file_name, int line)
{
    std::cout << "[" << level << "]" << "[" << time(nullptr) << "]" << "[" << message << "]" << "[" << file_name << ":" << line << "]" << std::endl;
}

#endif